// Copyright 叶湘 ( weixin:yexiang841, email:yexiang841@qq.com ), Shitouren Studio. All Rights Reserved.

#pragma once

#include "CoreMinimal.h"
#include "GameFramework/GameModeBase.h"
#include "Input/Q3D_CPPI_InputState.h"
#include "Q3D_CPPA_GameMode.generated.h"

class UQ3D_CPPC_InputState;

/**
 * 
 */
UCLASS(Blueprintable, ClassGroup = (Q3D), meta = (Tooltip = "Q3D_GameMode 基类(C++)"))
class Q3D_LIB_API AQ3D_CPPA_GameMode : public AGameModeBase, public IQ3D_CPPI_InputState
{
	GENERATED_BODY()

public:
	AQ3D_CPPA_GameMode();
	~AQ3D_CPPA_GameMode();

public:
	UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = Q3D_GameMode, meta = (Tooltip = "InputState 管理器"))
	UQ3D_CPPC_InputState *Ptr_C_InputState;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Q3D_GameMode, meta = (Tooltip = "Input 的初始化 ActionMapping"))
	UDataTable *Ptr_DT_Input_ActionMapping;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Q3D_GameMode, meta = (Tooltip = "Input 的初始化 AxisMapping"))
	UDataTable *Ptr_DT_Input_AxisMapping;

public:
	virtual void Q3D_IF_InputState_InitDT_GetActionMapping_Implementation(UDataTable *&ptr_dt_input_action_mapping) const override;

	virtual void Q3D_IF_InputState_InitDT_GetAxisMapping_Implementation(UDataTable *&ptr_dt_input_axis_mapping) const override;
};
